package com.ruicar.afs.cloud.manage.revoke.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.common.modules.contract.enums.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author infinitybi
 * @version 1.0
 * @date 2020/8/7 19:08
 */
@Data
public class ManageRevokeHandleVo {

    @JsonSerialize( using = ToStringSerializer.class)
    private Long id;
    /** 申请编号 */
    @ApiModelProperty("申请编号")
    private String applyNo;
    @ApiModelProperty("收据id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long receiptId;
    @ApiModelProperty("案件编号")
    private String caseNo;
    @ApiModelProperty("收款来源类型 枚举值：对公结算，微信还款，银行代扣")
    private ReceiptSourceTypeEnum sourceType;
    @ApiModelProperty("案件类型")
    private CaseTypeEnum caseType;
    @ApiModelProperty("客户姓名")
    private String custName;
    @ApiModelProperty("联系方式")
    private String phone;
    /** 案件状态 枚举值：撤销未发起，撤销审核中，撤销审核通过，撤销审核拒绝 */
    @ApiModelProperty("案件状态 枚举值：撤销未发起，撤销审核中，撤销审核通过，撤销审核拒绝")
    private CaseStatusEnum caseStatus;
    /** 收款成功时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("收款成功时间")
    private Date succeedTime;
    /** 案件发起时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("案件发起时间")
    private Date startTime;
    /** 案件结束时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("案件结束时间")
    private Date endTime;
    /** 合同号 */
    @ApiModelProperty("合同号")
    private String contractNo;
    /** 收款电子联行号 */
    @ApiModelProperty("收款电子联行号")
    private String ebankCode;
    /** 收款账户名称 */
    @ApiModelProperty("收款账户名称")
    private String accountName;
    @ApiModelProperty("收款金额")
    private BigDecimal arriveAmt;
    @ApiModelProperty("退款银行")
    private String refundBankCode;
    @ApiModelProperty("付款方式")
    private String termsPayment;
    @ApiModelProperty("处理方式")
    private TreatmentMethodEnum treatmentMethod;
    @ApiModelProperty("支付至")
    private String payer;
    @ApiModelProperty("退款账户")
    private String refundAccount;
    @ApiModelProperty("分支行")
    private String branchBank;
    @ApiModelProperty("联行号")
    private String bankNo;
    /** 审批结果 */
    @ApiModelProperty("审批结果")
    private String approvalOperating;
    /** 审批意见 */
    @ApiModelProperty("审批意见")
    private String approvalOpinion;
    /** 原因类型 */
    @ApiModelProperty("原因类型")
    private String reasonType;
    @ApiModelProperty("处理状态")
    private ProcessStatusEnum processStatus ;
    /** 处理人员 */
    @ApiModelProperty("处理人员")
    private String processPerson;
    @ApiModelProperty("部门")
    private String department;
    private String isViewBtn ;
    @ApiModelProperty("收款来源id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long sourceId;
}
